<?php

/**
 * @filename Login.php
 * @encoding UTF-8
 *
 * 
 * @datetime 2016-12-5
 *
 * @version 1.0
 * @Description
 */
namespace app\admin\controller;

use app\common\model\Mall as MallModel;
use think\Controller;
class Mall extends Common {


	/**
	 * 商城旗舰店列表
	 */
	public function showList()
	{

		$malltres= MallModel::where('parent_id',0)->order('sort_order ASC','is_rec DESC','mall_id DESC')->paginate(getPageSize());

//  	dump($malltres);die;
		//显示菜单

		foreach($malltres as $k =>$val){
			$malltres[$k]['class']= MallModel::where('parent_id',$val['mall_id'])->order('is_rec DESC')->select();

		};
		//接受过来的值
		if ($is_rec = input('is_rec')){
			//推荐
			if($is_rec=="a"){
				$malltres= MallModel::where('parent_id', 0)
						->where('is_rec',1)
						->order('sort_order ASC','is_rec DESC','mall_id DESC')
						->paginate(getPageSize());
				foreach($malltres as $k =>$val){
					$malltres[$k]['class']= MallModel::where('parent_id',$val['mall_id'])
							->where('is_rec', 1)
							->order('is_rec DESC')
							->paginate(getPageSize());
				};
				//取消推荐
			}elseif($is_rec=="b"){
				$malltres= MallModel::where('parent_id', 0)
						->where('is_rec',0)
						->order('sort_order ASC','is_rec DESC','mall_id DESC')
						->paginate(getPageSize());
				foreach($malltres as $k =>$val){
					$malltres[$k]['class']= MallModel::where('parent_id',$val['mall_id'])
							->where('is_rec', 0)
							->order('is_rec DESC')
							->select();
				};
			}
		}else{
			//你点击全部，就让他默认全部，
			$is_rec="all";
		}
		table_empty_list($malltres);  //这个是一个分页器，自己的写的一个方法，你可以点击进去看看的
		return view('showlist', ['malltres' => $malltres,'is_rec' => $is_rec]);

	}


    public function add()
    {
    	try{
    		if(isPost()){
//  			1.接受传过来的name
    			$data = input('post.');
//  			2.验证提交过来那些，没填写就提示他请输入
               	$this->validate_($data, 'Mall.add');
//             	3.实例化这个模型::insert就是插入数据到数据库里面
                 if(MallModel::insert($data)){
                 	
                  	 return success('添加成功');	 //成功就提示
                  }else{
                  	return error('添加失败');//失败就提示
                }
    		}else{
    			//这里为什么要查询出来呢，因为这个父级，需要制定，order 就是排序，ASC 就是从小到大，is_reci就是推荐，mall_id就是这条ID 
    			$category=db('mall')->where('parent_id', 0)->order('sort_order ASC','is_rec DESC','mall_id DESC')->select();
    			//分配模版到页面里面
                $this->assign('category', $category);
                return $this->fetch('form');
    		}
    	}catch (\Exception $e) {
            return error($e->getMessage());
     	}
    }
    
    
    //判断是不是推荐
    //很多都说：try 这个什么呢？ 事务，可以抛出异常错误，为什么要使用呢？ 你想想，一个项目为了
	//能够严谨，肯定用着办法，因为你是在帮人家写网站，所以我们必须要这样使用。
	//catch就是失败，数据如果有一条都不对，必须就插入不成功。
	//所以作为程序员，我必须这样做。这样才自己这份职业。

	//编辑方法
	public   function  edit(){
		try{
			if(isPost()){
//				//3.提交过的组合成一个数组
				$data = [
						'mall_id'=>input('post.mall_id'),
						'mall_name'=>input('post.mall_name'),
						'sub_name'=>input('post.sub_name'),
						'mall_url'=>input('post.mall_url'),
						'sort_order'=>input('post.sort_order'), //排序
						'mall_img'=>input('post.mall_img'),
						'is_rec'=>input('post.is_rec') ? input('post.is_rec') : 0,
				];
				$this->validate_($data, 'Mall.edit');
				if(MallModel::update($data)){
					return success('修改成功');
				}else{
					return error('修改失败');
				}

			}else{
//				1。先把之前的数据拿过来，
				$mallname=\think\Db::name('mall')->find(input('mall_id'));
//				2.分配到模版那里
				$this->assign('mallname',$mallname);

				return $this->fetch('editform');
			}
		}catch (\Exception $e){
			return error($e->getMessage());

		}

	}
	//删除
	public function del()
	{
		try {
			$data =input('post.mall_id');
			MallModel::del($data);
		} catch (\Exception $e) {
			return error($e->getMessage());
		}

		return success('删除成功');

	}

	//我要推荐
	public function is_rec(){
		$data =input('post.mall_id');
		$malltres= \think\Db::name('mall')->where('mall_id',$data)->find();
//  	dump($malltres);die;
		if($malltres['is_rec'] ==1){
			$malltres['is_rec'] =0;
			$malltres= \think\Db::name('mall')->where('mall_id',$data)->update($malltres);
			return success('修改成功');
		}else{
			$malltres['is_rec'] =1;
			$malltres= \think\Db::name('mall')->where('mall_id',$data)->update($malltres);
			if($malltres){
				return success('修改成功');
			}else{
				return error('修改失败');
			}
		}

	}
	//子类推荐方法
	public  function  isrec(){
		try{
			if(isPost()){
				//1.接受传送过的id
				$data = input('post.mall_id');
//				2.找到这条数据的
				$malltres = \think\Db::name('mall')->where('mall_id',$data)->find();
//				3.这个数据里面is_rec ==1
				if($malltres['is_rec'] ==1){
//					0是取消推荐
					$malltres['is_rec']=0;
					$malltres = \think\Db::name('mall')->where('mall_id',$data)->update($malltres);
					return success('修改成功');
				}else{
//					就修改为推荐   1是推荐
					$malltres['is_rec']=1;
					$malltres = \think\Db::name('mall')->where('mall_id',$data)->update($malltres);
					if($malltres){
						return success('修改成功');
					}else{
						return error('修改失败');
					}
				}
			}else {

				return $this->fetch();
			}

		}catch (\Exception $e){
			return error($e->getMessage());

		}
	}


	//子分类的编辑
	public function editlist()
	{

		try {
			if (isPost()){
				$data = [
						'mall_id'=>input('post.mall_id'),
						'mall_name'=>input('post.mall_name'),
						'sub_name'=>input('post.sub_name'),
						'mall_url'=>input('post.mall_url'),
						'sort_order'=>input('post.sort_order'), //排序
						'mall_img'=>input('post.mall_img'),
						'is_rec'=>input('post.is_rec') ? input('post.is_rec') : 0,
				];
				$this->validate_($data, 'Mall.edit');
				if(MallModel::update($data)){
					return success('修改成功');
				}else{
					return error('修改失败');
				}
			}else{
				$mallname= \think\Db::name('mall')->find(input('mall_id'));
				$this->assign('mallname',$mallname);
			}
		}catch (\Exception $e) {
			return error($e->getMessage());
		}
		return $this->fetch('editlist');
	}

	//排序修改
	public  function updateSortorder(){
		try {
			$data = input('post.');
			$this->validate_($data, 'Mall.editorder');
			if(MallModel::update(["sort_order"=>$data['sort_order']],['mall_id'=>$data['mall_id']])){
				return success('操作成功');
			}else{
				return error('操作失败');
			}
		}catch (\Exception $e) {
			return error($e->getMessage());
		}


	}

}